約 2,448,751 件
https://w.atwiki.jp/tkonishi73/pages/321.html
実数型数値表現について 仮数部の長さによって、実数表現の精度は決まる。 通常、4バイト浮動小数点数で表記される実数を単精度実数、8バイト浮動小数点数で表記される実数を倍精度実数、さらに、その倍の16バイト浮動小数点数で表記される実数を4倍精度実数、という。 (1).IBM実数表現方式(基数B=16) 単精度の4バイト実数は、1ビットの符号ビット、7ビットの指数部、3バイト(24ビット)の仮数部からなる。 倍精度の8バイト実数は、1ビットの符号ビット、7ビットの指数部、7バイト(56ビット)の仮数部からなる。 符号ビットは、「0」で0または正の数、「1」で負の数を表す。 指数部は、7ビット部分を整数に直し(0~127)、「64」を引く。 これにより、-64~63の指数を表す。 仮数部の求め方=正規化表現 仮数部は、先頭ビットから 、 、 、、の桁を表現する。 仮数部は、正規化(先頭のビットの前に、小数点があるようにする)を行ってから表現する。 16進数1桁は4ビットで構成されるので、単精度実数の場合、仮数部は16進数で6桁で表現できる。 倍精度実数の場合は、仮数部は16進数14桁で表現できる。 【例1】 10進数5.125をIBM単精度(4バイト)実数の16進表記にする。 まず、整数部は、。 小数以下は、なので、 となる。ここで終わりで、 となる。 ゆえに、仮数部。指数部は1。 指数部は、64を加えて。 仮数部は、。 符号は正なので、0。 以上から、5.125を4バイト実数に直すと、 01000001 01010010 00000000 00000000 となる。 これは、16進数表記にすると、41520000、となる。 【練習問題】(1)124.65625、(2)314.16、(3)0.1、のIBM単精度(4バイト)実数としての16進表記を求めよ。 解答 (1).124.65625 前回の結果から、であるので、 仮数部は。指数部は。 指数部は、64を加えて。 仮数部は、7CA800(16)=0111 1100 1010 1000 0000 0000。 符号は正なので、0。 以上から、5.125を4バイト実数に直すと、 0100 0010 0111 1100 1010 1000 0000 0000 となる。 これは、16進数表記にすると、427CA800、となる。 (2).314.16 前回の結果から、 であるので、 仮数部は上位6桁(最終桁は7捨8入)の。指数部は。 指数部は、64を加えて64+3=67=1000011(2)。 仮数部は、13A28F(16)=0001 0011 1010 0010 1000 1111。 符号は正なので、0。 以上から、314.16を4 バイト実数に直すと、 0100 0011 0001 0011 1010 0010 1000 1111 となる。 これは、16進数表記にすると、4313A28F、となる。 (3).0.1 前回の結果から、 であるので、 仮数部は上位6桁(最終桁は7捨8入)の0.19999A(16)。指数部は0。 指数部は、64を加えて64+0=64=1000000(2)。 仮数部は、19999A(16)=0001 1001 1001 1001 1001 1010(2)。 符号は正なので、0。 以上から、0.1を4バイト実数に直すと、 0100 0000 0001 1001 1001 1001 1001 1010 となる。 これは、16進数表記にすると、4019999A、となる。 練習問題 進数を、IBM単精度実数に直せ。
https://w.atwiki.jp/nopu/pages/86.html
以下は実数の完備性を特徴付ける同値な命題であり, 同じく順序体である有理数では成り立たない。 Axiom of Completeness Every nonempty set of real numbers that is bounded above has a least upper bound. Th. 上限(下限)とは,上界(下界)側からちょっとでも踏み込むと超えてしまうギリギリライン。 ⇔ 1. 2. Th. Nested Interval Property For each n∈N, assume we are given a closed interval In =[an,bn]. Assume also that each In contains In+1.Then, the resulting nested sequence of closed intervals has a nonempty intersection; that is, Th. Monotone Convergence Theorem If a sequence is monotone and bounded, then it converges. Th. Bolzano-Weierstrass Every bounded sequence contains a convegent subsequence. Th. Cauchy Criterion A sequence converges if and only if it is a Cauchy sequence.
https://w.atwiki.jp/bkaikei/pages/53.html
財務諸表分析の基本的方法には、比率分析と実数分析があります。 比率分析とは、数値A/数値Bのように主にパーセントで表す方法です。多くの場合「○○比率」といった名称になります。 実数分析は、パーセントではなく、実数(例えば金額値)で表す方法です。1株当たり分析や1人当たり分析があります。 前へ戻る|次へ進む
https://w.atwiki.jp/searchcustom/pages/25.html
登録カテゴリ表示 バナー欄空欄の時特定画像表示 登録カテゴリ表示 検索結果に登録しているカテゴリ一覧をリンク表示する。 ps_search.cgi 704行付近(sub siteindicate) $書き出しの直前に追加 ## カテゴリ表示【追加】$catgo = " ";@catg = split / c /, $y2[11];$size = @catg;for ( $i = 1 ; $i = $size ; $i++ ) {$catgo .="/ a href=\"ps_search.cgi?act=cat cat=$catg[$i]\" $category{\"$catg[$i]\"} /a ";}## 表示したい場所に $catgo と記入。 下記をローカル変数にしておくと少しはマシかもしれない。 $catgo,$siterenew,$size @catg ▲ バナー欄空欄の時特定画像表示 ps_search.cgi 684行付近(sub siteindicate) if (($y2[6] eq "") || ($bannerreg == 0)){$banner = "";} 差し替え if ($bannerreg == 0){$banner = "";}elsif(($y2[6] eq "") ($bannerreg != 0)){$banner = " a href=\"$siteurl\" target=\"$linktarget\" title=\"$y2[9]様\" img src=\"【画像のパス】\" width=\"【画像サイズ】\" height=\"【画像サイズ】\" border=\"0\" /a ";} ※この時点でバナーにもリンク付けちゃってますので、初期のようにリンクなしにしたいときは外してください。 ▲
https://w.atwiki.jp/wiki14_kit/pages/12.html
実数の切り上げ/切り下げを行う ceil() と floor() で実数の切り上げ/切り下げを行います. #include iostream #include cmath using namespace std; int main() { double y = 6.04; cout ceil( y ); // 7.0 cout floor ( y ); // 6.0 return 0; }
https://w.atwiki.jp/mynote/pages/81.html
FFT(高速フーリエ変換)の使い方 FFT(高速フーリエ変換)の使い方 今回使用するFFTライブラリ Fortran データの作成 Point1 Point2 Point3 Inputデータ Outputデータ 今回使用したデータとか全部 C言語 データの作成 今回使用するFFTライブラリ y(t) - Y(ω) 時間の関数yを周波数空間へ y(x) - Y(k):位置の関数yを波数空間へ Tω=2π, Xk=2πより周波領域、波数領域への変換を簡単に行う。 京都大学の大浦 拓哉先生のFFT http //www.kurims.kyoto-u.ac.jp/~ooura/fftman/ 今回は上記のFFTライブラリの使い方をC言語、Fortranで説明します。 Fortran データの作成 !======================================================================= ! FFT Test code ! ----- fast fourier transfer test code ----- ! coder Daisuke Saito ! date April 11, 2010 ! ! (1)set the initial data about N, pi ! (2)set the initial data for f(i) ! (3)f(i) transfer datas in a(i) ! (4)FFT for a(i) ! (5)out put !======================================================================= program main integer nmax, nmaxsqrt, i parameter (nmax = 32768, nmaxsqrt = 128) integer N, ip(0 nmaxsqrt + 1) real*8 a(0 nmax), f(0 nmax), w(0 nmax*5/4 - 1), pi, dx open(100, file="sin.txt") open(101, file="spectram.txt") write(100,*) "#i, argument, amplitude" write(101,*) "#i, powerspectram" N = nmaxsqrt pi = dacos(-1.d0) dx = 1.d0/N ip(0) = 0 a( ) = 0.d0 do i = 0, N f(i) = dsin(2.d0*pi*i*dx) + dsin(30.d0*2.d0*pi*i*dx) + 3*dsin(7.d0*2.d0*pi*i*dx) ! -この行で初期振動をセット write(100,*) i, 2.d0*pi*i*dx, f(i) enddo do i = 0, N a(2*i) = f(i) ! -Point1 enddo !---Kyoto-u FFT subrotine-- call cdft(2*N, 1, a, ip, w) ! - Point2 do i = 0, N/2 - 1 write(101,*) i, 2.d0*dsqrt(a(2*i)*a(2*i)+a(2*i+1)*a(2*i+1))/N ! -Point3 enddo close(100) close(101) end program main Point1 今回複素フーリエ変換するのため実数と複素数の入れ物を用意しなければならない、そこでaという入れ物を用意しアーギュメントiが偶数にフーリエ変換したい関数の実数部、iが奇数に虚数部をセットする。 注:今回は虚数部の値がないので、実数部だけ。 Point2 拓哉先生のFFTの説明どおり、cdft(2*N, 1, a, ip, w)を設定 Input 2*N = 複素FFTをかける配列の大きさ、今回は実部がN個、虚部がN個なので2N個 Input 1は普通のFFT、-1は逆変換 Input Output 変換するデータ、出力データは同じ配列に上書きされる Input ? Output ワーキング領域 Point3 今回パワースペクトルP(k)を出力したいのでP(k) =|F(k)|^2/N= Fre(k)*Fim(k)/Nを出力 Inputデータ 今回入力するデータは f = sin(x) + sin(30x) + 3sin(7x) Outputデータ パワースペクトルのピークがk=1,7,30のところに出ている。 今回使用したデータとか全部 https //docs.google.com/leaf?id=0B08q5BonMYJVMGEzNDkzZGMtOThkMC00OWRkLTk5NzctODVmOTQ2NWUyYmM1 hl=ja C言語 データの作成
https://w.atwiki.jp/tkonishi73/pages/322.html
7.実数の2進表現について 実数を表現するのに、浮動小数点表記を用いる。 たとえば、3.14159という数があったとき、先頭に小数点が来るように、 という、表記ができる。 先頭に小数点が来るように位置をずらすことを、正規化(normalize)といい、この記法を浮動小数点(floating point)表記という。 これに対して、通常の実数の 表記を、固定小数点(fixed point)表記という。 浮動小数点表記により、実数は唯一の記法で表現される。 浮動小数点表記のとき、上のの部分を仮数(mantissa)、10を基数(base)、1を指数(expoment)と呼ぶ。 仮数部をM、基数をB、指数をEとおくと、一般の正の数は、 と一意的に書ける。実数は、基数を決めておけば、仮数と指数で1通りの書き方しかない。 B=16のとき、IBM方式という。これは古くから汎用コンピュータで使用されている。B=2のとき、IEEE方式(アイ・トリプル・イー)という。これは最近のPCで使用されている。 B=2で表示桁が小さくなるような気がするが、後日述べる方式(隠しビット)で弱点がうまくカバーされる。 10進数の16進数化について 実数の整数部分と小数部分で分けて考える。 整数部分については、10進整数を16進数に変換する要領で求めることができる。 小数部分はどうすればよいだろう。 10進小数の場合で考えてみよう。 たとえば、0.456の小数第1位の数「4」はどのようにしたら得られるであろうか? 答えは極めて単純で、「10倍して小数点以下を切り捨てる」である。 0.456を10倍して4.56。小数点以下を切り捨てれば「4」となる。 では、小数第2位の「5」はどうだろう。 小数点以下で切り捨てられた「0.56」を10倍して小数点以下を切り捨てれば、「5」は得られる。 以上をまとめると、 実数を16進数にする方法 ① 実数を、整数部と小数以下部に分ける。 ② 整数部は、前に述べた方法で16進数にする。 ③ 小数以下部は、以下のようにして変換する。 まず、小数以下部の数を16倍する。このとき整数部に出た数が小数第1位の数である。 次に、また小数以下部を取り16倍する。このとき整数部に出た数が小数第2位の数である。 ④ 以下、この操作を繰り返す。 【例題】いま、B=16とする。このとき、234.90625を16進数の浮動小数点表記に直せ。 (解答)まず、整数部分は、 234÷16=14...10 14÷16=0...14 であるから、整数部分は「」となる。 小数部分は、0.90625であり、この部分は上の手順に従って変換する。すなわち、 0.90625×16=14.5 0.5×16=8.0 である。ゆえに、小数部分はとなる。 以上をあわせて、 となる。 ゆえに、、である。 ■ 問題 B=16として、次の実数を16進数の浮動小数点表記に直せ。 (1).124.65625 (2).314.16 (3).0.1 (解答) (1) 、 (2) 、 (3) 、 上付きドットは循環小数を表す。 ■
https://w.atwiki.jp/mathbot/pages/18.html
x≧0、y≧0のとき、(4x^3+4y^3+5)/(x+y+1)の最小値を求めてください。(06,一橋) a,bは正の整数とします。√3はa/bと(a+3b)/(a+b)の間にあることを証明してください(04,慶応) f(x)=cos(4x)-4sin^2(x)とします。0°≦x≦90°におけるf(x)の最大値と最小値を求めてください。(04,京大) a,bは実数の定数です。f(x)=x^3-(a+2b)x^2+(2ab+1)x-aとします。f(x)=0の実数解がx=aのみであり、整式f(x)をx-3で割った余りは10-6aです。関数y=f(x)は極値を持ちません。a,bの値を求めてください。(10,広島) 3^x=x^3を満たす正の有理数は、3以外に存在しないことを示してください。(91,東大) x,y,zが正の数で、x+y+z=1を満たすとき、1/x+4/y+9/zの最小値を求めてください。 a,b,cは相異なる正の実数です。次の4つの数の大小を比較して小さい順から並べてください。(a+b+c)(a^2+b^2+c^2),(a+b+c)(ab+bc+ca),3(a^3+b^3+c^3), 9abc (10,東京医科歯科) a^2+b^2≦c^2を満たす任意の正数a,b,cに対してa+b≦kcが成り立つとき、kの最小値を求めてください。(公立はこだて未来大) 実数x,yは5^x=81,135^y=243を満たしています。自然数k,m,nはk=m/y-n/xを満たしています。kの最小値を求めてください。なお、log_{3}(5)が有理数でないことは証明せずに使ってもよいとします。(09,岐阜大) aを実数とします。xについての方程式|x^2+ax+2a|=a+1があります。この方程式が異なる実数解をちょうど2個もつようなaの値の範囲を求めてください。(07,千葉) kは正の整数です。不等式5x^2-2kx+1 0は整数解を1つだけ持ちます。条件を満たすkの値をすべて求めて下さい。(08,一橋) x,yは3(log_{2}(x)-1)≦log_{2}(y)-1≦2(log_{2}(x)-1)を満たしながら動きます。x-yの最大値を求めてください。(09,慶応) 正の実数a,b,pに対してA=(a+b)^pとB=(a^p+b^p)*2^(p-1)の大小関係を調べてください。(98,東工大) a,b,cはa+b+c=0を満たす数です。x=a^2+b^2+c^2とします。a^4+b^4+c^4をxで表してください。(09,北大) 角Cが直角である三角形ABCを考えます。辺BCの長さは3以上の素数,辺CA,ABの長さは自然数とします。tanAもtanBも整数にならないことを示してください。(10,千葉) n個の任意の実数x_1,x_2,…,x_nに対して次の不等式(1)(2)のいずれかが成立することを示してください。(1) |sinx_1・sinx_2…sinx_n|≦(1/√2)^n, (2)|cosx_1・cosx_2…cosx_n|≦(1/√2)^n(03,名古屋) 10^(1/3)と(3/2)^(1/3)+1の大小を比較してください。(03,名古屋) (x^100+1)^100+(x^2+1)^100+1がx^2+x+1で割り切れるかどうか調べてください。(03,京大) aを正の定数としてf(x)=log_{2}(a+x)+log_{4}(a-x)とします。f(x)の最大値が4以上のとき、aの値の範囲を求めてください。(99広島大・文系) (a+b)c^3-(a^2+ab+b^2)c^2+a^2b^2を因数分解してください。(白鴎大) a,bは実数とします。すべての負の実数xに対してlog{(2ax)/(1+x^2)}≦2bx/(1+x^2)成り立つような(a,b)の範囲をab平面上に図示してください(なお対数は自然対数とします)。(札幌医大) nを自然数としてn次多項式P_n(x)はn+1個の整数k=0,1,2,...,nに対してP_n(k)=2^k-1を満たします。P_2(x)-P_1(x)およびP_3(x)-P_2(x)を因数分解してください。またP_n(x)を求めてください。(04,千葉) 不等式 log_{10}(-y^2-2xy+y+x^4-2x^3-3x-2+4x+1)≧log_{10}(-2x^2+2x+1)で表される領域を図示してください。またこのときのx+yの最大値、最小値を求めてください。(05,千葉) x^2-x+1=0の解をα、βとします。α^2+β^2、α^3+β^3、α^45+β^45の値をそれぞれ求めて下さい。(東北学院大) a,bは実数で2次方程式(1)x^2+ax+b=0 と (2)ax^2+bx+1=0 とが実数解λを共通に持てばλ=( )a+b=( )である。また(1)と(2)とが実数でない解を共通に持てばa=( )かつb=( )である。(71,東大1次) y=3/4x^2-3x+4の区間a≦x≦b(0 a b)における値域がa≦y≦bとなっているとき、a,bの値を求めてください。(74,東工大) 2次方程式x^2+ax+b=0がひきつづいた2つの整数を解にもち、2次方程式x^2+bx+a=0が正の整数を解にもつとき、a,bの値を求めてください。(76,東北大) (1)kを実定数とします。実数x,yがx+2y=kを満たすとき、x^2+2y^2の最小値を求めてください。 (2)f(x,y)=(x+2y+3)/(x^2+2y^2+3)の最大値を求めてください。(上智) tを実数とします。x=4^t-1/4^t、y=2^t-1/2^tとするとき、xとyの満たす関係式を求めてください。(98,学習院大) x,y,z≧0、nを自然数とするとき次の2つの不等式を示してください。 (1)(x^n+y^n)/2≧{(x+y)/2}^n (2)(x^n+y^n+z^n)/3≧{(x+y+z)/3}^n (埼玉大) ||4x^2-16|-8|-x-a=0の実数解の個数をaの値によって分類してください。(中京大) 関数f(x,y)=x^4-4x^2y+5y^2+4y+8が最小値をとるときの(x,y)とその最小値を求めてください。(摂南大)
https://w.atwiki.jp/overture-pokemon/pages/23.html
すばやさ実数値 S調整用メモ 某所のパクリとk(ry すばやさランク変化 ランク -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 倍率 25% 28% 33% 40% 50% 67% 100% 150% 200% 250% 300% 350% 400% 変化量 わざ・とくせい・もちもの +2 こうそくいどう, ロックカット, ボディパージ, ギアチェンジ +1 りゅうのまい, ちょうのまい, ニトロチャージ, かそく, でんきエンジン, ふくつのこころ, カムラのみ (げんしのちから, あやしいかぜ, ぎんいろのかぜ) -1 のろい, いとをはく, こごえるかぜ, じならし, がんせきふうじ, マッドショット,アームハンマー(自身) (あわ, からみつく, バブルこうせん) -2 こわいかお, わたほうし *2 おいかぜ, すいすい, ようりょくそ, すなかき, かるわざ (スピードパウダー) *1.5 こだわりスカーフ, はやあし 調整先ポケモン一覧 実数値 ポケモン 備考 22 最遅ナットレイ S実数値132以上の相手にジャイロボール威力150 34 最遅ドータクン S実数値204(鉄球等で102)以上の相手にジャイロボール威力150 45 無振りサマヨール 51 4振り30族(ヤドラン,ランクルス,カビゴンetc) 麻痺状態の最速130族抜き 63 最遅ハッサム 65 無振り45族(ローブシン,ゴローニャetc) 68 4振りカバルドン 4振りクリムガンで69 70 無振り50族(ヤミラミ,ドンファン,ハリテヤマ,ボスゴドラetc) 76 4振り55族(カイリキー,ハピナス,バッフロン,ゴルーグetc) 82 4振りバンギラス 60族(ブルンゲル,エンペルト,ユキノオー,ジバコイル,ポリゴン2,マタドガス,ラプラスetc)の調整先その1 86 4振り65族(ハッサム,ブイズ,エンブオーetc) 60族の調整先その2 91 4振り70族(メタグロス,ニョロトノ,エアームド,キリキザンetc) 修羅場!特にエアームドにちょうはつ入れるならここ目安に 102 4振りギャラドス,準速ラッキー 80族と81族(ギャラドス,ミロカロス)あたりの調整合戦。108まで振ってしまうことも多い 107 4振りFCロトム 準速55族,80族や無振りスイクン抜き調整もこの辺りに多い 123 最速60族(ユキノオー,ジバコイル,しおふきブルンゲル) スカーフで最速115族抜き,準速70族(パルシェン,ニョロボンetc)が122 124 最速バンギラス スカーフで最速116族抜きも、最近はあまり見ない 127 スカーフで最速120族抜き,+2でスカーフ最速ガブリアス抜きすいすい/ようりょくそ/すなかき/の調整先その1 130 スカーフで最速125族抜き 132 準速80族(カイリュー,チャーレム,バシャーモ,シャンデラ,トゲキッス,マンムーetc) いじっぱりASカイリュー増えすぎ 134 最速70族(キノガッサ,パルシェン) スカーフで最速130族抜き,からをやぶるとスカーフ最速110族抜き 138 準速FCロトム 135で最速70族抜き 141 最速ヒードラン ニトロチャージ型はひかえめ123調整あたりか 145 最速80族(カイリュー,チャーレム,バシャーモ,シャンデラ,トゲキッス,マンムーetc) +1/スカーフで最速アギルダー抜き 150 最速85族(スイクン,ヘラクロス,キングドラetc) 146でも最速80族抜き,カムラじしんかじょうヘラクロスは勘弁して…,雨なしキングドラもここ 152 準速100族(ウルガモス,ボーマンダ,バクフーン,フライゴン) +2ですいすい最速キングドラ抜き,バクフーンはスカーフふんか,フライゴンはりゅうせいぐん(笑) 154 準速ガブリアス,最速ドリュウズ ドリュウズはかたやぶり 156 最速90族(ルカリオ,ポリゴンZ,ロズレイド,ファイヤー) 161 最速95族(ヘルガー,エレキブル,グライオン,ユクシー,ウインディ,ヒヒダルマetc) 意外と95族最速だけのポケは少ない,ようきはちまきヒヒダルマワンチャン(笑) 167 最速100族(ムクホーク,リザードン,ライチュウetc) 最速101族(けしんランドロス,れいじゅうボルトロス)が168 169 最速ガブリアス 102族いやらしい,最速エモンガが170 172 最速105族(ストライク,ゾロアーク,ライボルト,ムウマージetc) 176 最速108族(ゴウカザル,テラキオン,コバルオン,ビリジオン,デンチュラ) 最速アイアントが179 178 最速110族(ラティオス,ラティアス,ユキメノコ,ゲンガー,アーケオス) 179 最速111族(けしんボルトロス,トルネロス) 183 最速115族(スターミー,チラチーノ,エテボース,フローゼル,アグノム,ライコウ) エルフーン,ゼブライカが184,ジャローダが181,ペンドラーが180 186 スカーフバンギラス 最近あまり見ない,スカーフ最速60族から最速115族抜き 189 最速120族(ジュカイン,フーディン,ダグトリオ) スカーフ最速65族から最速120族抜き 194 マニューラ スカーフ最速67族(ランターン)から最速115族抜き 198 +1/スカーフ準速80族(カイリュー,シャンデラ,ひかえめトゲキッス) てんのめぐみトゲキッスいやらしい,かそくバシャーモ1回守ったあともここ 200 最速130族(サンダース,プテラ,クロバット) スカーフ最速70族から最速130族抜き 217 +1/スカーフ最速80族(トゲキッスetc) こっちはおくびょう型トゲキッス,最速アギルダー抜き 228 +1/スカーフ準速100族(ウルガモス,ボーマンダetc) 1舞 250 +1/スカーフ最速100族(ムクホーク,バクフーンetc) 253 スカーフ最速ガブリアス 267 スカーフ最速110族(ラティオス,アーケオスetc) +2の最速70族(からをやぶるパルシェンetc)でスカーフ最速110族抜き 274 すいすい準速キングドラ +1/スカーフ最速115族と同速 280 すなかき準速ドリュウズ 300 すいすい最速キングドラ +2の準速100族ですいすい最速キングドラ抜き 308 すなかき最速ドリュウズ
https://w.atwiki.jp/aroe/pages/23.html
FFT Butterfly DIT動作 基数2 A = A * W0 + (B * Wn) B = A * W0 - (B * Wn) Wn Twiddle Factor W0 回転子が0の位置、正規化値ともいえる。次のように規定される。Real=(入力Twiddle Factorビット幅-2)^2 Imagine=0 FFT Butterfly DIF動作 基数2 A = (A + B) * W0 B = (A - B) * Wn 基数4 A = (A + B + C + D) * W0 B = (A -iB - C +iD) * Wn C = (A - B + C - D) * Wn1 D = (A +iB - C -iD) * Wn2 A出力は「Twiddle Factorビット幅-2)^2」を乗算することで出力を正規化している。 A出力の0ビットから下位「入力Twiddle Factorビット幅-2」ビットはZ(ハイインピーダンス)になるので、代わりに0をassignしておくこと。 基数2FFT ω:回転子 A = A + B B = (A - iB)ω 基数4FFT A = A + B + C + D B = (A - iB - C + iD)ω C = (A - B + C - D)ω2 D = (A + iB - C - iD)ω3 16ポイントFFT時の基数2、基数4FFTの回転子の変化 基数2DIT 要素 回転子 0 0 0 0 0 1 0 0 0 8 2 0 0 8 4 3 0 0 8 12 4 0 8 4 2 5 0 8 4 10 6 0 8 12 6 7 0 8 12 14 8 8 4 2 1 9 8 4 2 9 10 8 4 10 5 11 8 4 10 13 12 8 12 6 3 13 8 12 6 11 14 8 12 14 7 15 8 12 14 15 stage1 stage2 stage3 stage4 θの計算 要素の添え字を二進数で桁ごとにn3,n2,n1,n0と割り当てる 桁(2^x) 3 2 1 0 stage0 n3 0 0 0 stage1 n2 n3 0 0 stage2 n1 n2 n3 0 stage3 n0 n1 n2 n3 基数2DIF 要素 回転子 0 0 0 0 0 1 0 0 0 8 2 0 0 0 4 3 0 0 0 12 4 0 0 0 2 5 0 0 0 10 6 0 2 0 6 7 0 2 0 14 8 0 0 0 1 9 1 0 0 9 10 2 0 4 5 11 3 0 4 13 12 4 4 0 3 13 5 4 0 11 14 6 6 4 7 15 7 6 4 15 stage1 stage2 stage3 stage4 θの計算 毎ステージごとにTwiddleの刻みを半分に 基数4 DIF 要素 回転子 0 0 0 1 0 0 2 0 0 3 0 0 4 0 4 5 1 4 6 2 4 7 3 4 8 0 8 9 2 8 10 4 8 11 6 8 12 0 12 13 3 12 14 6 12 15 9 12 stage1 stage2 θの計算 毎ステージごとにTwiddleの刻みを1/4に θの計算毎ステージごとにTwiddleの刻みを半分に 配列の要素をスペクトルに√(実数^2 + 虚数^2) DIFとDITがある 基数4と基数2でやる方法がある基数4:クロックあたりの効率がいい(高速)が回路規模は大きくなる 基数2:クロックあたりの効率は悪い(低速)が回路規模は小さくなる 64点高速フーリエ変換回路 リンク